Shizuku 全网最详细教程:从入门到二改,解锁 Android 系统级权限
Shizuku 是一款革命性的 Android 开源工具,它让普通应用能够直接调用系统级 API,无需 Root 权限即可实现许多原本需要 Root 才能完成的操作。本文将为你提供全网最详细的 Shizuku 教程,涵盖基础安装、进阶指令、二次开发以及丰富的操作场景。
一、Shizuku 是什么?
Shizuku 的核心原理是通过 ADB(Android Debug Bridge)或 Root 权限启动一个独立的 Java 进程,作为应用与系统服务之间的桥梁,让普通应用能够通过 Binder 通信直接调用系统 API 。
传统方案的痛点:
· 需要在 su shell 中运行命令,速度极慢
· 处理文本输出,非常不可靠
· 受限于可用命令,功能受限
Shizuku 的优势:
· 直接调用系统 API,效率提升 300% 以上
· 无需处理文本解析,可靠性大幅提高
· 支持更丰富的系统功能调用
二、Shizuku 安装与激活教程
- 下载安装
从官网或可信应用市场下载最新版 Shizuku(包名:moe.shizuku.privileged.api)。
- 激活方式对比
激活方式 适用场景 持久性 优点
无线调试 无电脑用户 重启后需重新配对 无需电脑,操作便捷
ADB 连接 有电脑可用 重启后需重新执行 稳定性好,适合开发
Root 授权 已 Root 设备 永久有效 一次激活,永久使用
- 无线调试激活步骤(最常用)
第一步:开启开发者选项
打开手机「设置」→「关于手机」→ 连续点击「版本号」7 次,直到提示「已处于开发者模式」。
第二步:开启无线调试
- 进入「设置」→「开发者选项」
- 开启「USB 调试」
- 开启「无线调试」
- 点击「使用配对码配对设备」
第三步:完成配对
- 记下屏幕上显示的六位配对码
- 下拉通知栏,在 Shizuku 的通知中输入配对码
- 返回 Shizuku 应用,点击「启动」
第四步:验证激活
看到 Shizuku 界面显示「正在运行」即为成功 。
- 各品牌手机特殊设置
小米/POCO 用户:
· 在「开发者选项」中开启「USB 调试(安全设置)」
· 在「通知管理」-「通知显示设置」中将通知样式切换为「原生样式」
OPPO/一加用户:
· 在「开发者选项」中关闭「权限监控」
魅族用户:
· 在「开发者选项」中关闭「Flyme 支付保护」
华为/EMUI 用户:
· 在「开发者选项」中开启「”仅充电”模式下允许 ADB 调试选项」
- 常见问题排查
问题 解决方案
一直显示「正在搜索配对服务」 允许 Shizuku 在后台运行,关闭省电策略
输入配对码后立刻失败 检查通知样式设置(小米用户需切换原生样式)
Shizuku 随机停止运行 保持 USB 调试开启,将 USB 使用模式设为「仅充电」
无法开机启动 允许 Shizuku 在后台运行,加入自启动白名单
三、Shizuku 进阶指令与操作
- ADB 命令行激活(开发者模式)
# 通过 ADB 启动 Shizuku 服务
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/files/start.sh
# 检查 Shizuku 服务状态
adb shell dumpsys package moe.shizuku.privileged.api
- Shizuku 核心 API 调用示例
// 检查 Shizuku 服务是否可用
if (Shizuku.pingBinder()) {
// Shizuku 正在运行
int uid = Shizuku.getUid(); // 获取运行模式(ADB 或 root)
// 检查特定权限
if (Shizuku.checkPermission("android.permission.INSTALL_PACKAGES")) {
// 执行需要特殊权限的操作
}
}
- 通过 Shizuku 执行 shell 命令
// 创建 Shizuku shell 进程
Process process = Shizuku.newProcess(new String[]{"ls", "/data"}, null, null);
// 读取命令输出
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream())
);
String line;
while ((line = reader.readLine()) != null) {
// 处理输出
}
- 高级调试指令
Tasker 中的 Shizuku 状态检查:
Tasker 提供了专门的 Shizuku 状态检查功能,返回以下变量:
· %can_shizuku_be_used:是否可以使用 Shizuku
· %has_shizuku_permission:是否有 Shizuku 权限
· %is_shizuku_running:Shizuku 是否在运行
· %is_shizuku_installed:Shizuku 是否已安装
Rish Shell 终端:
Shizuku 内置了 Rish(Remote Shell),可以通过 Shizuku 权限执行高级 shell 命令:
# 进入 Rish 交互式 shell
rish
# 在 Rish 中执行命令
rish "pm list packages"
四、Shizuku 的二次开发与修改
- 开发环境搭建
克隆项目源码
git clone https://gitcode.com/gh_mirrors/sh/Shizuku.git
cd Shizuku
项目结构解析
· manager/:主应用模块,包含用户界面和管理功能
· server/:服务端模块,处理系统 API 调用
· api/:API 接口模块,提供开发者使用的接口
· common/:通用工具和工具类
· shell/:Shell 相关功能模块
· starter/:启动器模块
构建项目
# 构建调试版本
./gradlew :manager:assembleDebug
# 构建发布版本
./gradlew :manager:assembleRelease
- 集成 Shizuku API 到自己的应用
添加依赖
在 build.gradle 中添加:
def shizuku_version = '13.1.5' // 使用最新版本
implementation "dev.rikka.shizuku:api:$shizuku_version"
implementation "dev.rikka.shizuku:provider:$shizuku_version"
请求用户授权
// 检查权限并请求
if (Shizuku.isPreV11() || Shizuku.getVersion() < 11) {
// 旧版本兼容处理
} else {
// 请求权限
Shizuku.requestPermission(REQUEST_CODE);
}
权限回调处理
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,可以执行高权限操作
}
}
}
- 自定义修改示例
修改 Shizuku 服务启动逻辑
在 server/src/main/java/moe/shizuku/server/ShizukuService.java 中:
public class ShizukuService {
// 自定义启动检查
private static boolean customStartupCheck() {
// 添加你的自定义逻辑
return checkCustomConditions();
}
// 修改服务启动流程
public static void start(Context context) {
if (customStartupCheck()) {
// 执行自定义启动流程
startWithCustomConfig(context);
} else {
// 执行默认启动流程
startDefault(context);
}
}
}
添加自定义 API
在 api/src/main/java/dev/rikka/shizuku/Shizuku.java 中添加:
public class Shizuku {
// 自定义 API:获取电池信息
public static BatteryInfo getBatteryInfo() throws RemoteException {
IBinder binder = getBinder();
if (binder == null) {
throw new IllegalStateException("Shizuku not available");
}
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
try {
// 调用系统服务获取电池信息
data.writeInterfaceToken(IBatteryStats.DESCRIPTOR);
binder.transact(TRANSACTION_getBatteryStats, data, reply, 0);
return BatteryInfo.CREATOR.createFromParcel(reply);
} finally {
reply.recycle();
data.recycle();
}
}
}
- 编译与测试
# 编译所有模块
./gradlew assemble
# 运行测试
./gradlew test
# 安装到设备
adb install -r manager/build/outputs/apk/debug/manager-debug.apk
五、Shizuku 支持的精彩操作
- 应用管理类
操作 工具推荐 功能描述
冻结应用 小黑屋、冰箱 禁用系统应用或用户应用,节省资源
停用毒瘤应用 雹、Thanox 停用无法卸载的系统预装应用
APK 秒装 安装狮、SAI 绕过安装验证,实现快速安装
清除应用残留 SD 女佣 彻底清理应用卸载后的残留文件
- 系统定制类
修改屏幕分辨率(配合 SamHelper):
- 打开 SamHelper 的系统设置界面
- 关闭锁定比例
- 修改屏幕分辨率
- 点按「始终允许」使用 Shizuku
自定义充电提示:
通过 Shizuku + Tasker 实现:
· 充电时显示自定义动画
· 解锁屏幕时显示提示语
· 状态栏显示秒数
跳过开屏广告(配合轻启动、一指禅):
自动跳过应用的启动广告,提升使用体验
- 自动化操作(结合 Tasker)
Tasker 从 v6.6.18 开始深度集成 Shizuku,支持以下操作:
系统动作增强(使用 Shizuku 后更可靠):
· 飞行模式开关
· Wi-Fi/蓝牙控制
· 结束应用进程
· 移动数据切换
· 通话结束
· 声音模式设置
Java 代码执行:
// 在 Tasker 的 Java Code 动作中直接调用系统 API
IBinder windowManager = ServiceManager.getService("window");
IWindowManager wm = IWindowManager.Stub.asInterface(windowManager);
int rotation = wm.getRotation();
tasker.showToast("当前屏幕旋转:" + rotation);
日志捕获:
使用 Shizuku 权限捕获系统日志,即使在受限设备上也能正常工作 。
- 开发调试类
深度 ADB 功能:
· 简化应用安装流程
· 抓取系统日志
· 性能测试
· 查看隐藏 API
集成开发环境:
在开发工具如 AutoGLM 中,Shizuku 用于执行屏幕点击、滑动等自动化操作 。
- 实用工具组合
工具名称 Shizuku 作用 实现功能
黑阈 激活权限 限制应用后台运行
冰箱 授权管理 冻结不常用应用
小黑屋 权限支持 创建隔离空间
一指禅 跳过广告 自动跳过开屏广告
雹 停用应用 停用系统应用
SD 女佣 清理权限 深度清理系统
安装狮 安装授权 快速安装 APK
Scene 系统监控 查看系统状态
创建备份 备份授权 备份应用数据
存储重定向 文件访问 管理应用文件访问
- 游戏优化
· 游戏性能增强:通过 Shizuku 调整 CPU 调度
· 熊猫映射:Shizuku 授权后使用熊猫映射进行按键映射
· 图形设置调整:修改游戏渲染参数
六、注意事项与最佳实践
- 权限限制说明
· ADB 权限在不同 Android 版本上有所限制
· 在调用 API 前,始终使用 ShizukuService#checkPermission 检查权限
- 隐藏 API 访问(Android 9+)
自 Android 9 起,隐藏 API 的使用受到限制。建议结合以下方案:
// 使用 AndroidHiddenApiBypass 库
HiddenApiBypass.addHiddenApiExemptions("L");
- 多进程支持
对于需要在非 Activity 进程中使用的场景:
// 启动透明 Activity 触发 binder 发送
Intent intent = new Intent(context, TransparentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
- 性能优化建议
优化策略 效果提升 实现难度
批量操作处理 减少 IPC 次数 中等
缓存机制 避免重复调用 简单
异步处理 提升响应速度 中等
- 安全建议
· 最小权限原则:只为必要功能请求 Shizuku 权限
· 用户教育:清楚告知用户为什么需要使用 Shizuku
· 异常处理:建立健壮的错误处理机制,提供降级方案
七、总结
Shizuku 作为 Android 生态中的重要工具,为普通应用打开了系统级权限的大门。通过本文的详细教程,你应该已经掌握了:
- 基础安装与激活:三种激活方式及常见问题解决
- 进阶指令:API 调用、Shell 命令执行、Tasker 集成
- 二次开发:源码编译、API 集成、自定义修改
- 应用场景:从应用管理到系统定制的丰富操作
无论是普通用户希望深度定制手机,还是开发者需要系统级权限,Shizuku 都是一个值得掌握的强大工具。记住:权限越大,责任越大——在使用 Shizuku 时,请始终注意安全和隐私保护。
现在,开始你的 Shizuku 探索之旅吧!
参考资料:
· Shizuku 官方文档及 GitHub 仓库
· Tasker v6.6.18 更新日志
· Awesome Shizuku 项目分类


























评论(0)
暂无评论